package com.laomou.poker.rule;

import java.util.List;

import com.laomou.poker.PokerGroup;

public interface IPokerRule {
    /**
     * 获取当前出牌的规则
     *
     * @return PokerRuleType
     */
    public PokerRuleType getRuleType();

    /**
     * 判断出牌是否符合规则
     *
     * @param pg PokerGroup
     * @return true 符合 false 不符合
     */
    public boolean isRule(PokerGroup pg);

    /**
     * 判断参数(lp)的牌是否大于参数(rp)的牌
     *
     * @param lp PokerGroup
     * @param rp PokerGroup
     * @return true 大于 false 小于
     */
    public boolean isGreater(PokerGroup lp, PokerGroup rp);

    /**
     * 获取该规则玩家手牌数量
     *
     * @return 数量
     */
    public int getPlayerPokerCount();

    /**
     * 获取该规则所需要几副牌数量
     *
     * @return 数量
     */
    public int getPokerCount();

    /**
     * 判断是否牌组合中有大于参数的牌
     *
     * @param playerPg
     * @param pg
     * @param list
     * @return 真假
     */
    public boolean hasBigPoker(PokerGroup playerPg, PokerGroup pg, List<PokerGroup> list);
}
